// utils/lunar.ts
import { Lunar, Solar } from 'lunar-javascript';

export function getAlmanacData(date) {
  const solar = Solar.fromDate(date);
  const lunar = Lunar.fromDate(date);
  return {
    solarDate: solar.toFullString(),
    lunarDate: lunar.toFullString(),
    ganZhiYear: lunar.getYearInGanZhi(),
    ganZhiMonth: lunar.getMonthInGanZhi(),
    ganZhiDay: lunar.getDayInGanZhi(),
    ganZhiTime: lunar.getTimeInGanZhi(),
    zodiac: lunar.getYearShengXiao(),
    week: solar.getWeekInChinese(),
    jieQi: lunar.getJieQi(),
    yi: lunar.getDayYi(),
    ji: lunar.getDayJi(),
    taiShen: lunar.getDayPositionTaiSuiDesc(),
    caiShen: lunar.getDayPositionCaiDesc(),
    fuShen: lunar.getDayPositionFuDesc(),
    xiShen: lunar.getDayPositionXiDesc(),
    yangGuiShen: lunar.getDayPositionYangGuiDesc(),
    yinGuiShen: lunar.getDayPositionYinGuiDesc(),
    chong: lunar.getChongDesc(),
    xiongSha: lunar.getDayXiongSha(),
    naYin: lunar.getDayNaYin(),
    wuXing: lunar.getBaZiWuXing(),
    shiShen: {
      yearZhi: lunar.getBaZiShiShenYearZhi(),
      monthZhi: lunar.getBaZiShiShenMonthZhi(),
      dayZhi: lunar.getBaZiShiShenDayZhi(),
      timeZhi: lunar.getBaZiShiShenTimeZhi(),
      gan: lunar.getBaZiShiShenGan(),
    },
    pengZuGan: lunar.getPengZuGan(),
    pengZuZhi: lunar.getPengZuZhi(),
    xiu: lunar.getXiu(),
    xiuLuck: lunar.getXiuLuck(),
    xiuSong: lunar.getXiuSong(),
    tianShen: lunar.getDayTianShen(),
    tianShenLuck: lunar.getDayTianShenLuck(),
    tianShenType: lunar.getDayTianShenType(),
    jieQiList: lunar.getJieQiList(),
    jieQiTable: lunar.getJieQiTable(),
    festivals: lunar.getFestivals(),
    otherFestivals: lunar.getOtherFestivals(),
    shengXiao: lunar.getShengxiao(),
    wuHou: lunar.getWuHou(),
    shuJiu: lunar.getShuJiu(),
    yueXiang: lunar.getYueXiang(),
    zheng: lunar.getZheng(),
    zhiXing: lunar.getZhiXing(),
    xun: lunar.getDayXun(),
    xunKong: lunar.getDayXunKong(),
  };
}